﻿var contextPath=$('#contextPath').val();
var userCode=$('#code').val();

$(function(){
	getMenuData();
	$(".icon_menu").click(function(){
	  laySwitch();
	});	
	menuShowOrHide();
	//window.onresize=menuShowOrHide;
	$(window).resize(function(){
		//延迟执行,防止多次触发
        setTimeout(function() {
			menuShowOrHide();
        }, 100);
	});
});

function funcMenu(data,node){
	var num=0;
	var fHtml='';
	var cHtml='';
	for(var i=0;i<data.length;i++){
		if(data[i].PARENT_CODE==node.CODE){
			num++;
			cHtml+=funcMenu(data,data[i]);
		}
	}
	if(num>0){
		fHtml='<li><a navid=\"'+node.CODE+'\"><span>'+node.NAME+'</span></a><ul>'+cHtml+'</ul></li>';
	}else{
		fHtml='<li><a href=\"'+contextPath+node.MENU_PATH+'\" target=\"ifr\" navid=\"'+node.CODE+'\"><span>'+node.NAME+'</span></a></li>';
	}
	return fHtml;
}

//获取所有菜单数据 			
function getMenuData(){
    var userId=userCode;
    $.ajax({
        url : contextPath + "/bg/I101.do",
        data : {"userId":userId,"rnd":Math.random()},
        dataType : 'json',
        success : function(result, textStatus, jqXHR) {
            var data=result.rows;
            var menuHtml='';
            for(var i=0;i<data.length;i++){
                if(data[i].PARENT_CODE=='#'){
                    menuHtml+='<div class=\"list-group\"><h1 title=\"'+data[i].NAME+'\"><img src=\"'+contextPath+'/assets/nav/'+data[i].IMG+'\"></h1>';
                    menuHtml+='<div class=\"list-wrap\"><h2>'+data[i].NAME+'<i></i></h2>';
                    var child='';
                    var num=0;
                    for(var j=0;j<data.length;j++){
                        if(data[j].PARENT_CODE==data[i].CODE){
                            child+=funcMenu(data,data[j]);
                            num++;
                        }
                    }
                    if(num>0){
                        menuHtml+='<ul>'+child+'</ul>'
                    }
                    menuHtml+='</div></div>';
                }
            }
            $("#sidebar-nav").html(menuHtml);
            initMenu();
        }
    });
}

//初始化导航菜单
function initMenu(){
   var navGroupObj = $("#sidebar-nav .list-group");
    navGroupObj.each(function(index){
		var navHtml;
		if(index==0)
		{
		   navHtml=$("<li>"+$(this).children("h1").attr("title")+"</li>").appendTo($(".main-nav ul"));
		   $(this).children("h1").addClass("selected");
		   $(this).show();
	    }
		else
		{
		   navHtml=$("<li>"+$(this).children("h1").attr("title")+"</li>").appendTo($(".main-nav ul"));
		}

		navHtml.click(function(){	//导航栏点击事件
		    $(this).parent().children("li").removeClass("selected");
            $(this).addClass("selected");		
			navGroupObj.hide();
			navGroupObj.eq($(".main-nav ul").children("li").index($(this))).show();
		});
		//隐藏所有的ul
		$(this).find("ul").hide();
		
		$(this).find("ul").each(function(i){
			$(this).children("li").each(function(j){				
				if($(this).children("ul").length>0)//有子节点
				{
					$(this).children("a").append("<b class=\"expandable close\"></b>");
					$(this).children("a").addClass("icon folder");
                    $(this).children("a").click(function(){
						if($(this).children(".expandable").hasClass("open"))
						{
							$(this).children(".expandable").removeClass("open");
							$(this).children(".expandable").addClass("close");
							$(this).parent().children("ul").slideUp(300);
						}
						else
						{
							$(this).children(".expandable").removeClass("close");
							$(this).children(".expandable").addClass("open");
							$(this).parent().children("ul").slideDown(300);
						}
					});	
                    $(this).children("a").children("span").before("<b class=\"icon folder\"></b>");	
					
                    if($(this).parent().parent().children("a").length>0)			
                    {
					     $(this).children("a").children(".icon").css("marginLeft",parseInt($(this).parent().parent().children("a").children(".icon").css("marginLeft"))+16);
                    }
                    else
					{
						 $(this).children("a").children(".icon").css("marginLeft",0)
					}			
					
				}
				else//无子节点
				{
					$(this).children("a").children("span").before("<b class=\"icon file\"></b>");	
					
					$(this).children("a").click(function(){
						 navGroupObj.find("ul li a").removeClass("selected");
                         $(this).addClass("selected");
						 
						 //保存到cookie
					     if(typeof($(this).attr("navid"))!="undefined"){
							addCookie("dt_manage_navigation_cookie", $(this).attr("navid"), 240);
						}
					});	
					
					if($(this).parent().parent().children("a").length>0)			
                    {
					     $(this).children("a").children(".icon").css("marginLeft",parseInt($(this).parent().parent().children("a").children(".icon").css("marginLeft"))+16);
                    }
                    else
					{
						 $(this).children("a").children(".icon").css("marginLeft",0);
					}
				}
			});			
            if(i==0)
			{
				$(this).show();
				if($(this).children("li").first().children("ul").length>0)
				{
					$(this).children("li").first().children("a").children(".expandable").removeClass("close");		
                    $(this).children("li").first().children("a").children(".expandable").addClass("open");	
					$(this).children("li").first().children("ul").show();						
				}
			}
		});
		
	});
	//定位或跳转到相应的菜单
    linkMenuTree(true);
}

//页面布局切换
function laySwitch(){
	$("body").toggleClass("laymini");//这个设置也很有学问，可以改变了很多东西的样式。
}

//隐藏、显示菜单
function menuShowOrHide(){
	var wid=parseInt($(window).width());
	if(wid<800)
	{
		$("body").addClass("laymini");
	}
	else
	{
		$("body").removeClass("laymini");
	}
}

//定位或跳转到相应的菜单
function linkMenuTree(islink, navid) {
	var navObj = $("#main-nav");
	var navGroupObj = $("#sidebar-nav .list-group");
	var navItemObj = $("#sidebar-nav .list-group .list-wrap");
	
	//读取Cookie,如果存在该ID则定位到对应的导航
	var cookieObj;
	var argument = arguments.length;
	if (argument == 2) {
		cookieObj = navGroupObj.find('a[navid="' + navid + '"]');
	} else {
		cookieObj = navGroupObj.find('a[navid="' + getCookie("dt_manage_navigation_cookie") + '"]');
		//getCookie为其他js文件里面的方法，可以互相引用
	}
	if (cookieObj.length > 0) {
		//显示所在的导航和组
		//删除所有的选中样式
		navGroupObj.find("ul li a").removeClass("selected");
		//删除所有的list-group选中样式
		navGroupObj.removeClass("selected");
		//删除所有的main-nav选中样式
		navObj.children("a").removeClass("selected");
		//自身添加样式
		cookieObj.addClass("selected");
		//设置父list-group选中样式
		cookieObj.parents(".list-group").addClass("selected");
		//设置父main-nav选中样式
		navObj.children("a").eq(navGroupObj.index(cookieObj.parents(".list-group"))).addClass("selected");
		//隐藏所有的list-group
		navGroupObj.hide();
		//显示自己的父list-group
		cookieObj.parents(".list-group").show();
		//遍历所有的LI父节点
		cookieObj.parents("li").each(function () {
			//搜索所有同级LI且有子菜单的右图标为+号及隐藏子菜单
			$(this).siblings().each(function () {
				if ($(this).children("ul").length > 0) {
					//设置自身的右图标为+号
					$(this).children("a").children(".expandable").removeClass("open");
					$(this).children("a").children(".expandable").addClass("close");
					//隐藏自身子菜单
					$(this).children("ul").hide();
				}
			});
			//设置自身的右图标为-号
			if ($(this).children("ul").length > 0) {
				$(this).children("a").children(".expandable").removeClass("close");
				$(this).children("a").children(".expandable").addClass("open");
			}
			//显示自身的UL
			$(this).children("ul").show();
		});
		//检查是否需要保存到cookie
		if (argument == 2) {
			addCookie("dt_manage_navigation_cookie", navid, 240);
		}
		//检查是否需要跳转链接
		if (islink == true && cookieObj.attr("href") != "" && cookieObj.attr("href")!= "#") {
			frames["ifr"].location.href = cookieObj.attr("href");
		}
	} else if (argument == 2) {
		//删除所有的选中样式
		navGroupObj.find("ul li a").removeClass("selected");
		//保存到cookie
		addCookie("dt_manage_navigation_cookie", "", 240);
	}
}